package com.sheng.leetcode.year2023.month01.day06;

import org.junit.Test;

/**
 * @author liusheng
 * @date 2023/01/06
 * <p>
 * 2180. 统计各位数字之和为偶数的整数个数<p>
 * <p>
 * 给你一个正整数 num ，请你统计并返回 小于或等于 num 且各位数字之和为 偶数 的正整数的数目。<p>
 * 正整数的 各位数字之和 是其所有位上的对应数字相加的结果。<p>
 * <p>
 * 示例 1：<p>
 * 输入：num = 4<p>
 * 输出：2<p>
 * 解释：<p>
 * 只有 2 和 4 满足小于等于 4 且各位数字之和为偶数。<p>
 * <p>
 * 示例 2：<p>
 * 输入：num = 30<p>
 * 输出：14<p>
 * 解释：<p>
 * 只有 14 个整数满足小于等于 30 且各位数字之和为偶数，分别是：<p>
 * 2、4、6、8、11、13、15、17、19、20、22、24、26 和 28 。<p>
 * <p>
 * 提示：<p>
 * 1 <= num <= 1000<p>
 * <p>
 * 来源：力扣（LeetCode）<p>
 * 链接：<a href="https://leetcode.cn/problems/count-integers-with-even-digit-sum">2180. 统计各位数字之和为偶数的整数个数</a><p>
 * 著作权归领扣网络所有。商业转载请联系官方授权，非商业转载请注明出处。<p>
 */
public class LeetCode2180 {

    @Test
    public void test01() {
//        int num = 4;
        int num = 30;
        System.out.println(new Solution().countEven(num));
    }
}

class Solution {
    public int countEven(int num) {
        int count = 0;
        for (int i = 2; i <= num; i++) {
            int n = i;
            int sum = 0;
            while (n > 9) {
                sum += n % 10;
                n /= 10;
            }
            sum += n;
            if (sum % 2 == 0) {
                count++;
            }
        }
        return count;
    }
}
